package com.farm2.llm.client;

import com.plexpt.chatgpt.ChatGPT;
import com.plexpt.chatgpt.ChatGPTStream;
import com.plexpt.chatgpt.entity.chat.ChatCompletion;
import com.plexpt.chatgpt.entity.chat.ChatCompletionResponse;
import com.plexpt.chatgpt.entity.chat.Message;
import com.plexpt.chatgpt.listener.AbstractStreamListener;
import com.plexpt.chatgpt.listener.ConsoleStreamListener;
import okhttp3.sse.EventSource;

import java.util.Arrays;
import java.util.List;
import java.util.concurrent.CompletableFuture;

import static java.util.stream.Collectors.toList;

public class OpenAIClientExample {

























    public static void main(String[] args) {

        ChatGPTStream chatGPTStream = ChatGPTStream.builder()
                .timeout(600)
                .apiKey("sk-386be2d105e04a2bafd36d0da33326f4")

                .apiHost("http://192.168.0.107:11434/")

                .build()
                .init();

        chatGPTStream.streamChatCompletion(ChatCompletion.builder().model("deepseek-r1:32b")
                .messages(Arrays.asList(Message.of("用户体验优化 -在编辑器中增加提示语，例如： -\"推荐使用纯文本格式粘贴，避免格式混乱。\" -\"支持从Excel直接复制表格内容并插入。\"\n" +
                        "\n" +
                        "通过对上述问题的解决和优化，可以显著提升在线超文本编辑器对带格式文本或表格的操作体验，使其更加友好和高效。")))
                .build(), new AbstractStreamListener() {

            @Override
            public void onMsg(String s) {
                System.out.print(s);

            }

            @Override
            public void onClosed(EventSource eventSource) {
                System.out.println("----------关闭---------------");
                eventSource.cancel();
            }

            @Override
            public void onError(Throwable throwable, String s) {

            }
        });
    }






}
